//
//  XMGLRTableView.m
//  02-美团的界面搭建
//
//  Created by xiaomage on 15/8/10.
//  Copyright (c) 2015年 小码哥. All rights reserved.
//

#import "XMGLRTableView.h"
#import "XMGLeftCell.h"
#import "XMGRightCell.h"

@interface XMGLRTableView() <UITableViewDataSource, UITableViewDelegate>


/** 子数据 */
@property (nonatomic, strong) NSArray *subdata;

/** 记录左边选中的哪一行 */
@property (nonatomic, assign) NSInteger currentLeftIndex;

@end

@implementation XMGLRTableView

+ (instancetype)lrTableView
{
    return [[[NSBundle mainBundle] loadNibNamed:@"XMGLRTableView" owner:nil options:nil] firstObject];
}

#pragma mark - 实现tableView的数据源方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (tableView == self.leftTableView) { // 左边的tableView
        return [self.dataSource numberOfRowsInLeftTableViewWithXMGLRTableView:self];
    } else { // 右边的tableView
        return self.subdata.count;
    }
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = nil;
    if (tableView == self.leftTableView) { // 左边的tableView
        // 0.创建Cell
        cell = [XMGLeftCell leftCellWithTableView:tableView];
        
        // 1.给cell设置数据
        cell.textLabel.text = [self.dataSource lrTableView:self leftTitleInRow:indexPath.row];
        
        if ([self.dataSource lrTableView:self submenusForRow:indexPath.row]) {
            cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
        }else{
            cell.accessoryType = UITableViewCellAccessoryNone;

        }
        BOOL checked  =  [self.dataSource lrTableView:self leftCheckedforRow:indexPath.row];
        if (checked) {
            cell.textLabel.textColor = [UIColor redColor];
        }else{
            cell.textLabel.textColor = [UIColor blueColor];
        }
        // 2.设置cell的图片
//        if ([self.dataSource respondsToSelector:@selector(lrTableView:imageNameForRow:)]) {
//            NSString *imageName = [self.dataSource lrTableView:self imageNameForRow:indexPath.row];
//            cell.imageView.image = [UIImage imageNamed:imageName];
//        }
//        if ([self.dataSource respondsToSelector:@selector(lrTableView:highImageNameForRow:)]) {
//            NSString *highImage = [self.dataSource lrTableView:self highImageNameForRow:indexPath.row];
//            cell.imageView.highlightedImage = [UIImage imageNamed:highImage];
//        }
    } else { // 右边的tableView
        // 0.创建Cell
        cell = [XMGRightCell rightCellWithTableView:tableView];
  
        // 1.设置Cell的数据
        cell.textLabel.text = [self.dataSource lrTableView:self withRightArr:self.subdata rightTitleInRow:indexPath.row];
        
         BOOL checked  =   [self.dataSource lrTableView:self withRightArr:self.subdata rightCheckedInRow:indexPath.row];
        if (checked) {
            cell.textLabel.textColor = [UIColor redColor];
        }else{
            cell.textLabel.textColor = [UIColor blueColor];
        }
    }
    
    return cell;
}

#pragma mark - 实现tableView代理方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (tableView == self.leftTableView) { // 左边的tableView
        // 1.获取子数据
        self.subdata = [self.dataSource lrTableView:self subdataOfRow:indexPath.row];
        
        // 2.刷新右边表格
        [self.rightTableView reloadData];
        
        // 3.通知代理左边发生了点击
        if ([self.delegate respondsToSelector:@selector(lrTableView:selectedLeftIndex:)]) {
            [self.delegate lrTableView:self selectedLeftIndex:indexPath.row];
        }


        // 4.记录左边选中哪一行
        self.currentLeftIndex = indexPath.row;
    } else { // 右边的tableView
        if ([self.delegate respondsToSelector:@selector(lrTableView:selectedLeftIndex:andRightIndex:)]) {
            [self.delegate lrTableView:self selectedLeftIndex:self.currentLeftIndex andRightIndex:indexPath.row];
        }
    }
}

@end
